package com.yixing.tech.wcs.service;

import com.yixing.tech.common.base.BusinessException;

/**
 * 料箱任务服务接口
 * 负责处理料箱相关的业务逻辑，包括料箱处理完成的操作
 */
public interface IBoxTaskService {

    /** 加载料箱交互状态（从数据库中）*/
    void loadBoxInteractionState() throws BusinessException;

    /** CTU申请放下料箱 */
    void ctuApplyPutDownBox(String podCode) throws BusinessException;

    /** 设备允许放下料箱 */
    void enablePutDown() throws BusinessException;

    /** CTU出库任务完成 */
    void ctuOutBoundTaskFinish(String podCode) throws BusinessException;

    /** 设备回复收到放下料箱 */
    void replyPutDownFin() throws BusinessException;

    /** 料箱完成处理 */
    void boxHandlingFinish(String podCode) throws BusinessException;

    /** 设备回复收到料箱完成处理 */
    void replyBoxHandlingFin() throws BusinessException;

    /** CTU申请取出料箱 */
    void ctuApplyTakeOutBox(String podCode) throws BusinessException;

    /** 设备允许取出料箱 */
    void enableTakeOut(String podCode) throws BusinessException;

    /** CTU取出料箱完成 */
    void ctuBoxTakeOutFinish(String podCode) throws BusinessException;

    /** 设备回复取出料箱完成 */
    void replyTakeOutFin() throws BusinessException;

    void updateBoxState(String podCode, String interactionStateDictId) throws BusinessException;
}
